import 'food_item.dart';

class CartItem {
  // final String businessId;
  // final String businessName;
  // final String businessExplain;
  // final String businessImg;
  // final double starPrice;
  // final double deliveryPrice;
  final int quantity;
  final FoodItem food;


  CartItem(
      {
    required this.quantity,
    required this.food,
  });

  // factory关键字用于创建一个工厂构造函数。工厂构造函数在创建对象时可以返回一个已经存在的实例，也可以返回一个子类的实例。在上面的代码中，factory User.fromJson是一个工厂构造函数，
  // 用于从Map<String, dynamic>类型的JSON数据中创建一个User对象。

  // 使用工厂构造函数的好处在于可以控制对象的创建过程，例如可以在工厂构造函数中实现对象的缓存、对象池等机制，从而提高性能或实现一些特定的逻辑。
  // 如果不使用工厂构造函数，也可以实现相同的功能，但是需要在类的构造函数中直接处理JSON数据的转换，而不是将这个过程封装在一个独立的工厂构造函数中。使用工厂构造函数可以使代码更加清晰、模块化，并且有利于代码的维护和扩展。
  factory CartItem.fromJson(Map<String, dynamic> json) {//一般是处理接口返回的。
    return CartItem(
        quantity: json["quantity"],
        food: FoodItem.fromJson(json["food"])//因为food是一个FoodItem类型，所以交给FoodItem来做
    );

    // userCartCount:0; //这里这个不用写也行，因为在构造的时候的默认值就是0。
    // 而且最重要的是：接口返回的字段里面没有这个
  }
}
